package main

import (
	"fmt"
	"goProject/gorm/db"
)

func runSqliteExample() {
	dbConn := db.InitSQLite()

	// 迁移模式：根据 Product 结构体自动创建或更新数据库表结构
	dbConn.AutoMigrate(&db.Product{})

	// 创建数据：插入一条新产品记录
	dbConn.Create(&db.Product{Code: "D42", Price: 100})

	// 读取数据
	var product db.Product
	dbConn.First(&product, 1)                 // 根据主键 ID=1 查询产品
	dbConn.First(&product, "code = ?", "D42") // 查询 Code 字段为 "D42" 的产品

	fmt.Printf("找到产品: 编码=%s, 价格=%d\n", product.Code, product.Price)

	// 更新 - 将产品的价格更新为 200
	dbConn.Model(&product).Update("Price", 200)

	// 更新 - 更新多个字段（使用结构体）
	dbConn.Model(&product).Updates(db.Product{Price: 200, Code: "F42"}) // 只更新非零值字段

	// 更新 - 使用 Map 方式更新字段
	dbConn.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})

	fmt.Printf("更新后的产品: 编码=%s, 价格=%d\n", product.Code, product.Price)

	// 删除 - 删除该产品记录
	dbConn.Delete(&product, 1)

	fmt.Println("产品删除成功")
}

func main() {
	runSqliteExample()
}
